package singleton;

/**
 * 使用双重检查方式实现的单例模式
 *
 * @author Liu Yicong
 * @date 2025/9/23
 */
public class SingletonDoubleChecked {
	private volatile static SingletonDoubleChecked instance;

	private SingletonDoubleChecked() {
	}

	// 首先判断实例是否存在，如果不存在再通过加锁的方式获取新的实例。
	public static SingletonDoubleChecked getInstance() {
		if (instance == null) {
			synchronized (SingletonDoubleChecked.class) {
				if (instance == null) {
					instance = new SingletonDoubleChecked();
				}
			}
		}
		return instance;
	}
}
